#ifndef DRUIDE_H
#define DRUIDE_H

#include "Classe.h"
using namespace std;

/**
 * Cette classe implémente le druide de l'univers AD&D.
 * @author Johan "Solo" Luisier
 */
class Druide : public Classe
{
 protected:
  static const unsigned int nbr_comp, /**< Nombre de compétences disponibles */
    nbr_restric; /**<  Nombre de restritions disponibles */
  static const vector<ListComp> Comp; /**< Liste de compétences @see ListComp */
 public:
  Druide(unsigned int xp, unsigned int trait[7], unsigned int& PP);
  Druide(unsigned int xp, unsigned int trait[7]);
  Druide(unsigned int xp, unsigned int trait[7], const bool& UI);
  ~Druide();
  void calcul_niveau();
  //void afficher_stats(ostream& os = blank());
  void appliquer_modif(const string& type);
  void augmenter_talents(const unsigned int& bonus, const bool& lvl_up);
  void get_JS(unsigned int *tab) const;
  string get_competence(const unsigned int& i) const;
  unsigned int calcule_TAc0() const;
  void calcul_niv_mag();
  void ecrire_sorts(const string& nom_fichier, const bool& ecrase) const;
  void nbr_sort(unsigned int sorts[], const unsigned int& taille) const;
  void get_prix_acces(map<string, unsigned int>* Map) const;
};

#endif
